package Demo.MyTest;

/**
 * @className: Test1
 * @author: 芃
 * @description: OJ习题
 * @date: 2023/8/28 12:17
 */
public class Test1 {
    public static void main(String[] args) {
        int count = 0;
        for (int i = 1; i <= 100; i++) {
            if (i % 10 == 9 && i / 10 == 9){
                count+=2;
            }else if (i % 10 == 9 && i / 10 != 9){
                count += 1;
            }else if (i % 10 != 9 && i / 10 == 9){
                count += 1;
            }
        }
        System.out.println(count);
    }
    //题目要求是给定一串字符串 统计字符串当中有多少个单词
    public int countSegments(String s) {
        //先观察一下题目中给定的这个例子
        //Hello, my name is John
        //题目中说 单词指的是连续的不是空格的字符
        //那意思就是说 每遇到空格 我们就认为这是一个单词 对吧
        //那String类为我们提供了一个函数，字符串分割函数，对吧
        //根据给定的字符将字符串分割成几个小字符串
        String[] array = s.split(" ");
        //此时我们就将题目给定的s 以空格分割成了几个部分
        int count = 0;//用于统计单词个数
        for (String str: array) {
            //遍历
            if (!str.equals("")){//判断是否为空字符串，不为空 则加一
                count++;
            }
        }
        return count;
    }
    //转成小写字母
    public String toLowerCase(String s) {
        //根据题目的描述，这道题主要是想要我们把一个字符串中的大写字母转换成它对应的小写字母
        //那我们首先就要想到Ascii码表，具体怎么做？
        //在Ascii码表中，大写字母A-Z 是65-90
        // 小写字母a-z 是97-122
        //每个字母的大小写之间相差多少？ 32 对吧~
        //那就好做了
        //先把字符串转成字符数组 即调用String类的toCharArray()方法
        char[] ch = s.toCharArray();
        //然后去遍历字符数组
        for (int i = 0; i < ch.length; i++) {
            char tmp = ch[i];
            if (tmp >= 'A' && tmp <= 'Z'){//一旦碰到大写字母
                ch[i] = (char) ((char) tmp+32);//就将大写字母转换成小写 给它加上32就是它对应的小写字母
            }
        }
        //走到这，字符数组当中的大写字母就都被转成小写字母存储了
        //使用StringBuilder来将字符数组当中的字符拼接起来
        StringBuilder avl = new StringBuilder();
        for (char c : ch) {
            avl.append(c);
        }
        //由于题目要求返回的类型是String，我们现在拼接好的字符串是StringBuilder类型
        return avl.toString();//调用StringBuilder的toString()方法就可以把调用StringBuilder转换成String类型了
    }
}
